package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.BizBarcode;
import com.ruoyi.system.domain.dto.GenerateBarcodeRequest;

/**
 * 箱码列表Service接口
 * 
 * @author ruoyi
 * @date 2025-10-21
 */
public interface IBizBarcodeService 
{
    /**
     * 查询箱码列表
     * 
     * @param barcodeId 箱码列表主键
     * @return 箱码列表
     */
    public BizBarcode selectBizBarcodeByBarcodeId(Long barcodeId);

    /**
     * 查询箱码列表列表
     * 
     * @param bizBarcode 箱码列表
     * @return 箱码列表集合
     */
    public List<BizBarcode> selectBizBarcodeList(BizBarcode bizBarcode);

    /**
     * 新增箱码列表
     * 
     * @param bizBarcode 箱码列表
     * @return 结果
     */
    public int insertBizBarcode(BizBarcode bizBarcode);

    /**
     * 修改箱码列表
     * 
     * @param bizBarcode 箱码列表
     * @return 结果
     */
    public int updateBizBarcode(BizBarcode bizBarcode);

    /**
     * 批量删除箱码列表
     * 
     * @param barcodeIds 需要删除的箱码列表主键集合
     * @return 结果
     */
    public int deleteBizBarcodeByBarcodeIds(Long[] barcodeIds);

    /**
     * 删除箱码列表信息
     * 
     * @param barcodeId 箱码列表主键
     * @return 结果
     */
    public int deleteBizBarcodeByBarcodeId(Long barcodeId);

    /**
     * 生成箱码并更新采购订单明细数量（事务）
     * @param request 生成箱码参数
     * @return 新增箱码的行数
     */
    public int generateBarcodes(GenerateBarcodeRequest request);

    /**
     * 获取当日下个批次号（格式：yyyyMMddNNN）
     * @return 批次号
     */
    public String getNextBatchNoForToday();
}
